home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1996 March
/
EnigmA AMIGA RUN 05 (1996)(G.R. Edizioni)(IT)[!][issue 1996-03][Skylink CD IV].iso
/
earcd
/
demo
/
rotplnnr.lha
/
reg.c
< prev
next >
Wrap
C/C++ Source or Header
|
1994-08-20
|
1KB
|
62 lines
#define NOFUNCTIONS
#include <reg.h>
char *SoftwareList[]={"Any","ScreenFool","RouteEdit",NULL};
BOOL Authenticate(struct Registration *reg, ULONG software)
{
if(DFTChecksum(reg)!=reg->AutreChecksum) return FALSE;
if(reg->ChecksumNumber!=DoFunkyThing(reg->ActualNumber)) return FALSE;
if(software!=reg->CTSAuthorized && reg->CTSAuthorized!=CTS_ANY)
return FALSE;
return TRUE;
}
ULONG DoFunkyThing(ULONG source)
{
ULONG dest;
srand(source*999);
dest=rand();
dest=(dest*13);
srand(dest);
dest=rand();
dest=abs(dest/97);
return(dest ? dest : 9821841UL );
}
ULONG StringSum(char *str)
{
ULONG sum=0;
while(*str)
{
sum+=*str;
str++;
}
return sum;
}
ULONG DFTChecksum(struct Registration *reg)
{
ULONG sum;
sum=StringSum(reg->Name);
sum+=StringSum(reg->Addr1);
sum+=StringSum(reg->Addr2);
sum+=StringSum(reg->Country);
sum+=StringSum(reg->EMail);
sum+=StringSum(reg->Copyright);
sum+=reg->CTSAuthorized;
return DoFunkyThing(sum);
}